package com.py.credit.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;

import com.py.credit.common.ServiceException;
import com.py.credit.entity.ModelDetail;
import com.py.credit.entity.ModelTestChartPoint;
import com.py.credit.entity.ModelTestPc;
import com.py.credit.entity.ModelTestRankForPiePoint;
import com.py.credit.entity.ModelTestScoreForBarPoint;
import com.py.credit.entity.SysUser;
import com.py.framework.core.common.Page;

public interface ModelTestService {

	public List<Map<String, Object>> getByConditionForPage(List<String> showColumns, String[] additionalColumns,
			String condition, Page page, String mainType, String userId);

	/**
	 * 获取详情列表
	 * 
	 * @return
	 */
	public List<ModelDetail> selectPcDetailByConditionForPage(List<String> showColumns, String[] additionalColumns,
			String condition, Page page, @Param(value = "pcId") String pcId);

	public void addPcInfo(@Param(value = "modelTestPc") ModelTestPc modelTestPc,
			@Param(value = "listTybm") List listTybm);

	public List<ModelTestChartPoint> toNormalDistributionChart(@Param(value = "pcId") String pcId,
			@Param(value = "rate") String rate);

	public List<ModelTestRankForPiePoint> toRankForPieChart(@Param(value = "pcId") String pcId);

	public List<ModelTestScoreForBarPoint> toScoreForBarChart(@Param(value = "pcId") String pcId);

	public void autoScore(@Param(value = "modelTestPc") ModelTestPc modelTestPc,String scoreType, @Param(value = "list") String list,String pdfForXypjPagePathYz,String absolutepath,String googlePath,String pdfJsPath);

	public void autoScoreUpload(@Param(value = "modelTestPc") ModelTestPc modelTestPc,String scoreType,
			@Param(value = "batchId") String batchId,String pdfForXypjPagePathYz,String absolutepath,String googlePath,String pdfJsPath);

	public List<Map<String, String>> selectModel(@Param(value = "zone") String zone,
			@Param(value = "industry") String industry, @Param(value = "reportType") String reportType,
			@Param(value = "mainType") String mainType);

	public Map<String, String> selectScoreInfoByTybmAndPcid(@Param(value = "pcId") String pcId,
			@Param(value = "tybm") String tybm);

	public String doUploadFile(MultipartFile file, SysUser userInfo, String absolutepath)
			throws ServiceException, Exception;

	public List<Map<String, Object>> selectBatchExportForPage(List<String> showColumns, String[] additionalColumns,
			String condition, Page page, String batchId);

	public int selectNoRepeatCount(@Param(value = "mainType") String mainType,
			@Param(value = "batchId") String batchId);

	public int selectRightAllCount(@Param(value = "mainType") String mainType,
			@Param(value = "batchId") String batchId);

	public int selectErrorCount(@Param(value = "mainType") String mainType, @Param(value = "batchId") String batchId);

	public int updateReportStatus(@Param(value = "status") String status, @Param(value = "id") String id);

	public String getEvailInfoScore(@Param(value="tybm") String tybm);

	Map<String, Object> getScoreDetailByPC(String batchId);

	public  Map<String, Object> getxydjInfo(String tybm, String pcId);

	public String getpchByPcid(String id);

}
